Categorías destacadas
programacion php    
Artículo
19
¡votar!

 Acceso a Bases de Datos [JDBC]


Actualizar Tablas

Supongamos que después de una primera semana exitosa, el propietario de "The Coffee Break" quiere actualizar la columna SALES de la tabla COFFEES introduciendo el número de libras vendidas de cada tipo de café. La sentencia SQL para actualizar una columna se podría parecer a esto.

String updateString = "UPDATE COFFEES " +
	"SET SALES = 75 " + 
	"WHERE COF_NAME LIKE 'Colombian'";

Uitlizando el objeto stmt, este código JDBC ejecuta la sentencia SQL contenida en updateString.

stmt.executeUpdate(updateString);

La tablaCOFFEES ahora se parecerá a esto.

COF_NAME SUP_ID PRICE SALES TOTAL
Colombian 101 7.99 75 0
French_Roast 49 8.99 0 0
Espresso 150 9.99 0 0
Colombian_Decaf 101 8.99 0 0
French_Roast_Decaf 49 9.99 0 0

Observa que todavía no hemos actualizado la columna TOTAL, y por eso tiene valor 0.

Ahora seleccionaremos la fila que hemos actualizado, recuperando los valores de las columnas COF_NAME y SALES, e imprimiendo esos valores.

String query = "SELECT COF_NAME, SALES FROM COFFEES " +
	       "WHERE COF_NAME LIKE 'Colombian'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
		String s = rs.getString("COF_NAME");
		int n = rs.getInt("SALES");
		System.out.println(n + " pounds of " + s +
 						  " sold this week.")
}

Esto imprimira lo siguiente.

75 pounds of Colombian sold this week.

Cómo la claúsula WHERE límita la selección a una sóla línea, sólo hay una línea en la ResultSet: rs y una línea en la salida. Por lo tanto, sería posible escribir el código sin un bucle while.

rs.next();
String s = rs.getString(1);
int n = rs.getInt(2);
System.out.println(n + " pounds of " + s + " sold this week.")

Aunque hay una sóla línea en la hoja de resultados, necesitamos utilizar el método next para acceder a ella. Un objeto ResultSet se crea con un cursor apuntando por encima de la primera fila. La primera llamada al método next posiciona el cursor en la primera fila (y en este caso, la única) de rs. En este código, sólo se llama una vez a next, si sucediera que existiera una línea, nunca se accedería a ella.

Ahora actualizaremos la columna TOTAL añadiendo la cantidad vendida durante la semana a la cantidad total existente, y luego imprimiremos el número de libras vendidas hasta la fecha.

String updateString = "UPDATE COFFEES " +
		      "SET TOTAL = TOTAL + 75 " + 
		      "WHERE COF_NAME LIKE 'Colombian'";
stmt.executeUpdate(updateString);
String query = "SELECT COF_NAME, TOTAL FROM COFFEES " +
				   "WHERE COF_NAME LIKE 'Colombian'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
		String s = rs.getString(1);
		int n = rs.getInt(2);
		System.out.println(n + " pounds of " + s + " sold to date.")
}

Observa que en este ejemplo, utilizamos el índice de columna en vez del nombre de columna, suministrando el índice 1 a getString (la primera columna de la hoja de resultados es COF_NAME), y el índice 2 a getInt (la segunda columna de la hoja de resultados es TOTAL). Es importante distinguir entre un índice de columna en la tabla de la base de datos como opuesto al índice en la tabla de la hoja de resultados. Por ejemplo, TOTAL es la quinta columna en la tabla COFFEES pero es la segunda columna en la hoja de resultados generada por la petición del ejemplo anterior.

Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
Gus_Unad dice:

Saludos Ricard. Muchas gracias por el exelente aporte era lo que estaba buscando. Si me pudieras facilitar la aplicacion completa de la que hablas aca te lo agradeceria muchisimo, ya mire el link pero ya no esta ha de ser por el tiempo que ha pasado. Nuevamente MIL GRACIAS

14/06/2010, a las 05:25:29
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon